我正在尝试匹配2个具有字符串Copy-Of的模式。我正在使用单词边界\ b ... \ b为我的比赛,但我遇到了问题。
string = "This is a backup-Copy-Of your CD can you make a Copy-Of it?"
现在,我想匹配backup-Copy-Of和Copy-Of
if (Pattern.compile("\\bCopy-Of\\b").matcher(Parameter).find()) {
这将匹配来自(backup-Copy-Of)和Copy-Of本身的Copy-Of。
程序仍然运行到这一点但是当我添加下面的行时出现错误。
if (Pattern.compile("\\bbackup-Copy-Of\\b").matcher(Parameter).find()) {
如果我删除了第一个模式匹配(" \ bCopy-Of \ b")并且只留下第二个模式(" \ bbackup-Copy-Of \ b"),它运行没有任何问题。
So What is the correct way to match for backup-Copy-Of and Copy-Of.
结果应该是:
1 match for backup-Copy-Of
1 match for Copy-Of
答案 0 :(得分:0)
您需要启用i
修饰符,因为o
中的Of
为小写,但输入中的大写字母为up
,您还需要backup
由于正则表达式包含back
,因此在输入中它是if (Pattern.compile("(?i)\\bback(?:up)?-Copy-of\\b").matcher(Parameter).find()) {
。
Matcher m = Pattern.compile("(?<!\\S)back(?:up)?-Copy-Of(?!\\S)").matcher(Parameter);
if(m.find()) {
或
[OperationContract]
[WebInvoke(Method = "POST",
RequestFormat=WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "PostUpdate/{userIMEI}")]
string PostUpdate(string userIMEI, PostUpdateContract UserInfo);