我在我的正则表达式身体中发现了这些东西,但我不知道我能用它们做什么.有人有例子,所以我可以尝试了解它们是如何工作的吗?
(?!) - negative lookahead
(?=) - positive lookahead
(?<=) - positive lookbehind
(?<!) - negative lookbehind
(?>) - atomic group
Run Code Online (Sandbox Code Playgroud) 我甚至不确定这是否可能,但这就是我想要的.
String: "NS306 FEBRUARY 20078/9/201013B1-9-1Low31 AUGUST 19870"
Run Code Online (Sandbox Code Playgroud)
我有一个文本框,我在其中键入搜索参数,它们是空格分隔的.因此,我想返回一个匹配字符串是string1在字符串中,然后string2在字符串中,或者string2在字符串中,然后string1在字符串中.我不在乎字符串的顺序是什么,但是它们(我将会超过2个)必须在字符串中.
例如,在提供的字符串中我想要:
"FEB Low"
Run Code Online (Sandbox Code Playgroud)
要么
"Low FEB"
Run Code Online (Sandbox Code Playgroud)
......作为比赛返回
我真的是regex的新手,只读了一些关于这里的教程,但那是不久前我需要今天完成这个.星期一我开始了一个更重要的新项目,不能分散这个问题.无论如何使用正则表达式来执行此操作,还是必须遍历搜索过滤器的每个部分并排列顺序?任何和所有的帮助非常感谢.谢谢.
更新:我不想迭代循环并且正在寻找最佳性能的原因是因为不幸的是,我使用的dataTable在每次按键时调用此函数,我不希望它陷入困境.
更新:谢谢大家的帮助,非常感谢.
代码更新:
最终,这就是我的目标.
string sSearch = nvc["sSearch"].ToString().Replace(" ", ")(?=.*");
if (sSearch != null && sSearch != "")
{
Regex r = new Regex("^(?=.*" + sSearch + ").*$", RegexOptions.IgnoreCase);
_AdminList = _AdminList.Where<IPB>(
delegate(IPB ipb)
{
//Concatenated all elements of IPB into a string
bool returnValue = r.IsMatch(strTest); //strTest is the concatenated string
return returnValue;
}).ToList<IPB>();
}
}
Run Code Online (Sandbox Code Playgroud)
IPB类有X个元素,在我所工作的整个站点中没有一个表是相同顺序的列.因此,我需要任何订单搜索,我不想写很多代码来做它.这里还有其他好的想法,但我知道我的老板真的很喜欢Regex(讲道他们),因此我认为如果我现在就这样做是最好的.如果由于某种原因网站的性能下滑(内部网站点),那么我会尝试另一种方式.感谢大家.
我需要解析一些数据,我想转换
AutomaticTrackingSystem
Run Code Online (Sandbox Code Playgroud)
至
Automatic Tracking System
Run Code Online (Sandbox Code Playgroud)
基本上在任何大写字母之前放置一个空格(当然除了第一个)
我在ruby中实现了以下问题.
这是我想要的模式:
1234,1324,1432,1423,2341等
即四位数字中的数字应该在[1-4]之间,也应该是非重复的.
为了让你以一种简单的方式理解我采取两位数模式,解决方案应该是:12,21
即数字应为1或2,并且应该是非重复的.
为了确保它们不重复,我想使用$ 1作为我的第二个数字的条件,但它不起作用.
请帮助我,并提前感谢.
如何从字符串中获取最后一个整数"56",如ra12ke43sh56?
我必须将下一个值修改为ra12ke43sh57,所以我想得到最后一个整数值.
这是我正在使用的代码:
public class splitText {
public static void main(String[] args) {
String x = "I lost my Phone. I shouldn't drive home alone";
String[] result = x.split(".");
for (String i : result) {
System.out.println(i);
}
}
}
Run Code Online (Sandbox Code Playgroud)
编译完美,但在运行时没有任何反应.我究竟做错了什么?
我们正在学习常规语言和正则表达式之间的区别,老师解释了这种语言
a^n b^n
Run Code Online (Sandbox Code Playgroud)
不常见,但她说大多数正则表达口味都可以匹配
a^n A^n
Run Code Online (Sandbox Code Playgroud)
她为我们额外的学分作业问题提出了这个问题.我们现在已经苦苦挣扎了几天,并且可以真正使用一些指导.
在另一个问题中,我学会了如何使用正则表达式计算直接扑克牌(这里).
现在,出于好奇,问题是:我可以使用正则表达式使用ASCII代码计算相同的东西吗?
就像是:
正则表达式:[C] [C + 1] [C + 2] [C + 3] [C + 4],是C的ASCII码(或者像这样)
比赛:45678,23456
不符合:45679或23459(不按顺序)
我不知道这是否可以使用正则表达式.我只是想问一下有人知道答案.
我有一个string ="hellohowareyou??".我需要像这样拆分它
[h, el, loh, owar, eyou?, ?].
完成分割使得第一串具有长度1,第二长度2等等.最后一个字符串将包含剩余的字符.我可以使用像这样的函数在没有正则表达式的情况下轻松完成.
public ArrayList<String> splitString(String s)
{
int cnt=0,i;
ArrayList<String> sList=new ArrayList<String>();
for(i=0;i+cnt<s.length();i=i+cnt)
{
cnt++;
sList.add(s.substring(i,i+cnt));
}
sList.add(s.substring(i,s.length()));
return sList;
}
Run Code Online (Sandbox Code Playgroud)
我只是好奇是否可以使用正则表达式完成这样的事情.
有没有办法(除了做两个单独的模式匹配)在PHP中使用preg_match来测试字符串的开头或模式?更具体地说,我经常发现自己想要测试我有一个匹配的模式,其前面没有东西,如
preg_match('/[^x]y/', $test)
(也就是说,如果它前面没有x,则匹配y),但如果它出现在$ test的开头(当它也不在x之前,但前面没有任何字符,那么也匹配y,所以[^ x]构造不起作用,因为它总是需要一个字符来匹配它.
在字符串的末尾有一个类似的问题,以确定是否发生了一个没有其他模式的模式.
regex ×8
java ×3
c# ×2
.net ×1
lookahead ×1
lookaround ×1
permutation ×1
php ×1
poker ×1
preg-match ×1
split ×1
string ×1