具体来说,有没有办法实现相当于
my $string = 'this is some example text';
my $match = qr/foobar/;
print 'success' if $string !~ $match;
Run Code Online (Sandbox Code Playgroud)
仅使用=〜,而不使用否定运算符?
具体来说,我需要确保一个字符串与提供的值不匹配,并且测试函数接受正则表达式对象,并将它们积极地应用于该值. 该值根本不会出现在搜索到的字符串中,这会使前瞻和后瞻断言复杂化.
像下面这样的东西可能是一个很好的测试:
my $string = 'this is some example text';
my $match =~ qr/foobar/;
# $negated_match contains $match, or some transformed variation of it
my $negated_match = qr/$YOUR_REGEX_HERE/;
die 'failure' if $string =~ $match;
print 'success' if $string =~ $negated_match;
Run Code Online (Sandbox Code Playgroud)
我怀疑有一种方法可以通过环顾四周的断言来做到这一点,但还没有解决它.perl特定答案是可以接受的.
我正在寻找创建RegEx模式
[a-zA_Z]我创建了这个模式:
^(?=.*[0-9].*[0-9])[0-9a-zA-Z]{8}$
Run Code Online (Sandbox Code Playgroud)
这种模式工作正常,但我只想要一个数字.例:
aaaaaaa6 match
aaa7aaaa match
aaa88aaa don't match
aaa884aa don't match
aaawwaaa don't match
Run Code Online (Sandbox Code Playgroud) 我在设计正则表达式时遇到问题.我甚至不确定它是否有可能.
我想匹配n个字符,但其中一个必须是换行符(或任何已定义的字符).
这是我的意见:
0000000
0000000
000A000
00AB000
AAAB000
ABBB000
Run Code Online (Sandbox Code Playgroud)
我的(不工作)正则表达式是
.*A.{5}A.{5}A.{5}A.*
Run Code Online (Sandbox Code Playgroud)
更改模式DOTALL是不够的,因为我必须确保每个匹配之间有一个换行符A
我只是想知道我的输入是否匹配,我不想提取任何东西.
我想检查A输入中是否有-diagonal.
正则表达式只允许1到12之间的数字
我正在尝试,(12)|[1-9]\d?但它不起作用,请帮助,因为我是正规表达的新手
string emailBody = " holla holla testing is for NewFinancial History:\"xyz\" dsd NewFinancial History:\"abc\" NewEBTDI$:\"abc\" dsds ";
emailBody = string.Join(" ", Regex.Split(emailBody.Trim(), @"(?:\r\n|\n|\r)"));
var keys = Regex.Matches(emailBody, @"\bNew\B(.+?):", RegexOptions.Singleline).OfType<Match>().Select(m => m.Groups[0].Value.Replace(":", "")).Distinct().ToArray();
foreach (string key in keys)
{
List<string> valueList = new List<string>();
string regex = "" + key + ":" + "\"(?<" + GetCleanKey(key) + ">[^\"]*)\"";
var matches = Regex.Matches(emailBody, regex, RegexOptions.Singleline);
foreach (Match match in matches)
{
if (match.Success)
{
string value = match.Groups[GetCleanKey(key)].Value;
if (!valueList.Contains(value.Trim()))
{
valueList.Add(value.Trim()); …Run Code Online (Sandbox Code Playgroud) 我目前正在使用扫描软件"Drivve Image"从每篇论文中提取某些信息.该软件可以根据需要运行某些正则表达式代码.它似乎与UltraEdit Regex引擎一起运行.
我得到以下扫描结果:
1. 21Sid1
2. Ordernr
3. E17222
4. By
5. Seller
Run Code Online (Sandbox Code Playgroud)
我需要在字符串中搜索文本Ordernr,然后选择以下行E17222,最后一行将是扫描文档的文件名.我永远不会知道这两个值在字符串中的确切位置.这就是我需要关注的Ordernr原因,因为我需要的文本将始终作为下一行.
我的要求是这样的,我需要E17222成为匹配结果中唯一可以工作的东西.我只允许输入普通的正则表达式.
已经有一个很棒的线程:正则表达式匹配字符串后得到的单词
我测试了" \ bOrdernr\s +\K\S + "这很棒..
是不是软件不允许使用/ K. 有没有其他方法来实现\ K?
延续
虽然如果示例文本涉及"Ordernr"背后的角色,但是当前的答案在我需要的范围内不起作用.像这个样本:
21Sid1
Ordernr 1
E17222
通过
卖家
当前的解决方案选择"1"而不是" 下一行 ",这将是" E17222 ".在匹配组中.需要指出进一步参与该问题.
我正在尝试编写一个正则表达式来掩盖电子邮件地址.以下示例.
输入:john.doe@example.en.com
输出:j*******@e*********.com
我尝试了以下但我似乎无法让它正常工作.
正则表达式:
(?<=.).(?=[^@]\*?@)输出:J-*******@ example.en.com
正则表达式:
(?<=.).(?=[^@]\*?)(?=[^\.]\*?\.)输出:J-******************融为一体.
任何帮助,将不胜感激. 演示
我正在使用许多不同的Regex实现,因为这发生在几个系统上(Linux,Windows,VS,记事本++等); 这就是我有一个客户想要删除自动调整大小的地方.目的是使用正则表达式,其中任何工具都可以找到任何具有宽度但没有自动宽度的行,然后添加自动宽度.我只想询问如何找到它,但我打算在我给定的编辑器的替换字符串中使用我在这里找到的内容.我有更换的位:我还没弄明白当另一个远离那个时,如何从另一个中取出一个.
使用https://regex101.com/我已经尝试了几十个搜索字符串.
这是我搜索字符串的起点以及几次尝试获取在线上任意位置排除AutoWidth的外观.字符串2和3基本相同,但我不知道还有什么可以尝试.我认为任何适用于后视的东西都适用于前瞻,但正如你所看到的,我甚至不能在后面工作.
Run Code Online (Sandbox Code Playgroud)(?<! AutoWidth="false") width="\d*"(?! AutoWidth="false") (?<! AutoWidth="false").*? width="\d*"(?! AutoWidth="false") (?<! AutoWidth="false")[0-9a-zA-Z" =]*? width="\d*"(?! AutoWidth="false")
我卡住了,把自动宽度和宽度之间的距离放在了我的身上.
这些是我的目标
Run Code Online (Sandbox Code Playgroud)1-> <column name="Selected" AutoWidth="false" IsEditable="true" datatype="bool" width="20"/> 2-> <column width="40" AutoWidth="false" name="ExternalIdOrEmpty" index="XIDname" sort="true"/> 3-> <column width="40" name="Tax Rate" index="TRname" sort="true" AutoWidth="false"/> 4-> <column width="40" name="Total Tax" index="TTname" sort="true"/> 5-> <column name="Tax Deductible" index="TDname" sort="true"/>
我想找到包含的所有行
宽度= "\ d*"
但那不包含
AutoWidth = "\ d*"
在同一条线上的任何地方.
这意味着在上面的示例中,只有第4行符合我的标准.
更新:
我愿意使用任何其他工具来完成工作.所以XSLT等都很好.唯一的要求是该工具通常可在Windows,Linux和Mac上使用,并且是开源的或免费的,并且也是众所周知的.
完整的xml是巨大的.这里的编辑功能限制为30,00个字符,但这是一个很好的样本.
<?xml version="1.0" encoding="utf-8" ?>
<spread>
<ViewPatientOutboundReferralFilter> …Run Code Online (Sandbox Code Playgroud) Im使用的表达式:
(?!.+\]\:)(.+)/g
Run Code Online (Sandbox Code Playgroud)
字符串:
some text I dont wan't ]: some text I want
Run Code Online (Sandbox Code Playgroud)
结果:
]: some text I want
Run Code Online (Sandbox Code Playgroud)
我的印象是前瞻从以下匹配结果中排除.那么为什么]:要包含在结果中呢?也许这是+前瞻,但我不知道该替换它.
我有一份参考文献清单,例如
references <- c(
"Dumitru, T.A., Smith, D., Chang, E.Z., and Graham, S.A., 2001, Uplift, exhumation, and deformation in the Japanese Mt Everest, Paleozoic and Mesozoic tectonic evolution of central Africa: from continental assembly to intracontinental deformation: Journal of Neverland, v. 3, no. 192, p. 71-199.",
"Dumitru, T.A., Smith, D., Chang, E.Z., and Graham, S.A., 2001, Uplift, exhumation, and deformation in the Japanese Mt Everest, Paleozoic and Mesozoic tectonic evolution of central Africa: from continental assembly to intracontinental deformation: Journal …Run Code Online (Sandbox Code Playgroud) regex ×10
c# ×2
java ×2
regex-greedy ×2
.net ×1
boost-regex ×1
perl ×1
r ×1
regex-group ×1
string ×1
xslt ×1