[英]How to set the first character via regex?
第一個字符可以是除等號( =
)之外的任何字符。
我做了以下正則表達式:
[^=].
ab
, b2
等會通過,而=a
不會。
但問題是,我也想接受單一字符:
a
也應該被接受。 我怎樣才能做到這一點?
更新
你可能想知道為什么我這樣做。 我有一個URL正則表達式
(?!=)((www\\.|(https?|ftp)://)[.a-z0-9-]+\\.[a-z0-9/_:@=.+?,#%&~-]*[^.'#!()?, ><;])
但是如果它在=
字符后面,我不希望解析URL。
嘗試否定前瞻:
^(?!=)
^
匹配輸入的開始,而(?!...)
是負向前看。 它還匹配一個空字符串。
如果這是你的正則表達式中唯一的約束,你應該嘗試使用你正在使用的語言提供的API來獲取字符串的第一個字符。
String s = "myString";
if(s.Length == 0 || s[0] != '=')
//Your code here
如果你真的想要一個正則表達式的@Bart解決方案 。
這是一個沒有預見的替代方案/^([^=]|$)/
^ <- Starts with
( <- Start of a group
[^=] <- Any char but =
| <- Or
$ <- End of the match
) <- End of the group
您不需要RegEx。 有String.StartsWith ......
if ( ! theString.StartsWith("=") ) {
...
錨定到開頭和結尾,並使整個事物可選。
^(?:[^=].*)?$
難道你不能只使用^=
並在代碼中沒有匹配時執行操作嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.