diff --git a/lib/gitlab/chat_commands/issue_show.rb b/lib/gitlab/chat_commands/issue_show.rb
index f5bceb038e5aeb8dbf2821abe6a2e05fa9d9e143..2a45d49cf6b30824f5672ccfcebb1e9172ced818 100644
--- a/lib/gitlab/chat_commands/issue_show.rb
+++ b/lib/gitlab/chat_commands/issue_show.rb
@@ -2,7 +2,7 @@ module Gitlab
   module ChatCommands
     class IssueShow < IssueCommand
       def self.match(text)
-        /\Aissue\s+show\s+(?<iid>\d+)/.match(text)
+        /\Aissue\s+show\s+#{Issue.reference_prefix}?(?<iid>\d+)/.match(text)
       end
 
       def self.help_message
diff --git a/spec/lib/gitlab/chat_commands/issue_show_spec.rb b/spec/lib/gitlab/chat_commands/issue_show_spec.rb
index 331a4604e9b5f89f3b2bfb96409fe1a710866f49..2eab73e49e5deb8224795d1472e5b3f3661c56b1 100644
--- a/spec/lib/gitlab/chat_commands/issue_show_spec.rb
+++ b/spec/lib/gitlab/chat_commands/issue_show_spec.rb
@@ -19,6 +19,14 @@ describe Gitlab::ChatCommands::IssueShow, service: true do
       it 'returns the issue' do
         expect(subject.iid).to be issue.iid
       end
+
+      context 'when its reference is given' do
+        let(:regex_match) { described_class.match("issue show #{issue.to_reference}") }
+
+        it 'shows the issue' do
+          expect(subject.iid).to be issue.iid
+        end
+      end
     end
 
     context 'the issue does not exist' do