[英]Short Code Regex
我寫了一個正則表達式來匹配類似於以下格式的短代碼:
[playername Le'Veon Bell]
這是正則表達式:
\[playername\s+(?<name>[\w \-\'\’]+)\s*\]
我知道正則表達式正在與玩家名稱中的單引號斗爭。 我在這里測試了正則表達式它似乎工作,但是當我從我的網絡應用程序運行代碼時找不到匹配。
根據您提供的信息我相信\\[playername\\s+(?<name>[^]]+?)\\s*\\]
應該有效。
唯一的區別是在捕獲組[^]]+
其是不屬於任何字符匹配]
。 這將有效地捕獲[playername
直到第一個 ]
之后的任何內容。 如果你有嵌套括號,它會破壞。
對於此示例,您不需要轉義-
, '
字符類中存在'
符號。
Regex rgx = new Regex(@"\[playername\s+(?<name>[\w '’-]+?)\s*\]");
如果不了解你的情景,那肯定很難說,但是從你所得到的,我會說你應該轉向更像這樣的東西?
\[playername\s+(?<name>[^\]\s]*)\s+\]
這將匹配任何沒有方括號或空格的東西,所以它看起來就像你真正想做的那樣。 我個人很想刪除空白條件,只是因為名字可能有空格。 你可以隨時調用你的語言版本的C#的string.Trim()
是事后的。
當然,請注意,它與您正在做的事情並不完全相同:您明確地限制了字符。 但看起來你似乎試圖限制任何文本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.