我想写一个可以删除"."的正则表达式.最后(可以在centa或centb内)标记并将其放在前面
String input1 = "this is a   <centa> test.</centa>"
String output1 = "this is a . <centa> test</centa>"
Run Code Online (Sandbox Code Playgroud)
要么
String input1b = "this is a   <centb> test.</centb>"
String output1b = "this is a . <centb> test</centb>"
Run Code Online (Sandbox Code Playgroud)
要么
String input3 = "this is a   test."
String output3 = "this is a .  test"
Run Code Online (Sandbox Code Playgroud)
我只能在字符串上使用replaceAll,所以如何在下面的代码中创建模式?更换字符串应该是什么?
Pattern rulerPattern1 = Pattern.compile("", Pattern.MULTILINE);
System.out.println(rulerPattern1.matcher(input1).replaceAll(""));
Run Code Online (Sandbox Code Playgroud)
请求者在评论中提出了这一边缘案例
string input4 = "“[<deleted.material>[</deleted.material>]§ 431:10A–126&em??sp;[<deleted.material>]Chemotherapy services.</deleted.material>] <added.material>Cancer treatment.</added.material>test snl."
string output4 = "“[<deleted.material>[</deleted.material>]§ 431:10A–126.&em??sp;[<deleted.material>]Chemotherapy services.</deleted.material>] <added.material>Cancer treatment.</added.material>test snl"
Run Code Online (Sandbox Code Playgroud) 我需要提取用文字或文字中的数字书写的数字.
我有一张看起来像这样的桌子,
... 1 child ...
... three children ...
...four children ...
...2 children...
...five children
Run Code Online (Sandbox Code Playgroud)
我想要捕获用文字或数字形式写的数字.每行有一个数字.所以期望的输出将是:
1
three
four
2
five
Run Code Online (Sandbox Code Playgroud)
我的正则表达式看起来像这样:
prxparse("/one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve|thirteen|child|\d\d?/")
Run Code Online (Sandbox Code Playgroud)
有帮助吗?
我需要按照以下要求制作正则表达式:
给出示例文本:
SEARCH_TERM_#1 find this text SEARCH-TERM_#2_more text_SEARCH-TERM_#3
SEARCH_TERM_#1 find this text SEARCH-TERM_#3
Run Code Online (Sandbox Code Playgroud)
我想提取出现在该find this text
区域的字符串
正则表达式应该在SEARCH_TERM_#1
最多但不包括SEARCH_TERM_#2
或者SEARCH-TERM_#3
首先出现之后收集数据.它应该选择作为"右侧"搜索边界,无论它首先发现#2和#3.
我试过(?>SEARCH_TERM_#2|SEARCH_TERM_#3)
(?=(?>SEARCH_TERM_#2|SEARCH_TERM_#3))
和(?>(?=SEARCH_TERM_#2)|(?=SEARCH_TERM_#3))
.并且它们全部包括第二个搜索项到收集的数据中并在第三个之前停止,而我希望收集的数据在#2或#3之前停止.
在shtml页面中使用正则表达式和jquery验证电子邮件文本框时,错误弹出显示正则表达式的问题,因为它在正则表达式中包含"@".
$(document).ready(function() {
$('#btn-submit').click(function() {
$(".error").hide();
var hasError = false;
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; //"@" in regex is the issue
var emailaddressVal = $("#UserEmail").val();
if(emailaddressVal == '') {
$("#UserEmail").after('<span class="error">Enter email address.</span>');
hasError = true;
}
else if(!emailReg.test(emailaddressVal)) {
$("#UserEmail").after('<span class="error">Enter a valid email address.</span>');
hasError = true;
}
if(hasError == true) { return false; }
});
});
Run Code Online (Sandbox Code Playgroud) 嗨,我是Perl编程的新手,我编写了一个代码来使用正则表达式从标量变量存储第一个数字,但我从最后一行得到第一个数字,但我需要从第一行开始编号.
例如,在下面的代码我需要$num = 22
但代码返回656
.
my $num ;
my $sample = "fd 22 sdf sdf 96
dsf6 66s sd6 7777 sd
656 dd 55 ";
my @sentences = split(/\n/, $sample);
for my $line(@sentences)
{
($num )= $line =~ /([0-9]+) .*/ ;
}
print $num;
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我,我的逻辑有什么问题吗?
使用Java怎么可能全部更换"\n"
,但不能">\n"
用"<br/>"
?
我需要它,因为我想添加一个"<br/>"
如果我在纯文本上有一个新行,但如果我有HTML则不需要.
任何人都知道为什么RegExp.$ 1-x变量不能设置为undefined?
以下是nodejs中的示例.chrome/firefox中的行为相同:
console.log('1:', RegExp.$1, RegExp.$2, RegExp.$3, RegExp.$4);
// 1: / Users/tiefenma/Desktop/ test.js .js
var string = 'test1 test2 test3';
var test = string.match(/(test1).*(test2).*(test3)/gm);
console.log('2:', RegExp.$1, RegExp.$2, RegExp.$3, RegExp.$4);
// 2: test1, test2, test3
RegExp.$1 = undefined;
RegExp.$2 = undefined;
RegExp.$3 = undefined;
console.log('3:', RegExp.$1, RegExp.$2, RegExp.$3, RegExp.$4);
// 3: test1, test2, test3
delete RegExp.$1;
delete RegExp.$2;
delete RegExp.$3;
console.log('4:', RegExp.$1, RegExp.$2, RegExp.$3, RegExp.$4);
// 4: test1, test2, test3
''.match(/(.*)/g);
console.log('5:', RegExp.$1, RegExp.$2, RegExp.$3, RegExp.$4);
// 5:
Run Code Online (Sandbox Code Playgroud) 虽然意识到使用正则表达式进行某些html操作的陷阱/危险(而不是使用PHP dom操纵器),但我正在尝试实现一些非常简单且没有风险的东西.
基本上我有一些来自数据库的未清理的html副本,它不使用段落而是使用换行标记来产生段落的效果.有时虽然用户只输入了一个中断的内容,但文本行返回但没有出现空白行.在这种情况下,仅在这种情况下,我想<br>
用两个(<br><br>
)替换该单个.
以此为例......
This is <br>a test<br><br>example!
Run Code Online (Sandbox Code Playgroud)
会成为
This is <br><br>a test<br><br>example!
Run Code Online (Sandbox Code Playgroud)
请注意第二组中断是如何保留的,因为它已经有2个标记.
所以我的问题是,在相同的内容中有 iframe、图像标签等。它们都有正则表达式匹配,可以将它们转换为正确的格式。
最后剩下的就是普通的 URL。我需要一个正则表达式,它将找到所有只是链接而不是在 iframe、img 或任何其他标签内的链接。本例中使用的标签是常规 HTML 标签,而不是 BB。
目前我得到了这个代码作为内容渲染的最后一遍。但它也会对上面完成的所有其他操作(iframe 和 img 渲染)做出反应。因此它也会交换 URL。
$output = preg_replace(array(
'%\b(([\w-]+://?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/)))%s'
), array(
'test'
), $output);
Run Code Online (Sandbox Code Playgroud)
我的内容看起来像这样:
# dont want these to be touched
<iframe width="640" height="360" src="http://somedomain.com/but-still-its-a-link-to-somewhere/" frameborder="0"></iframe>
<img src="http://someotherdomain.com/here-is-a-img-url.jpg" border="0" />
# and only these converted
http://google.com
http://www.google.com
https://www2.google.com<br />
www.google.com
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,链接末尾也可能有一些内容。经过一整天的尝试正则表达式的工作后,最后<br />
对我来说是一场噩梦。
我正在寻找一个正则表达式,如果字符串包含字符*
,则匹配,但只有一次.它应该匹配a*aa
,aa*aaaaa
,a*aaaa
,但它不应该匹配a**a
,a****
,****
.任何建议?
regex ×10
perl ×3
java ×2
php ×2
alternation ×1
character ×1
html ×1
javascript ×1
jquery ×1
lookahead ×1
lookaround ×1
lookbehind ×1
matching ×1
node.js ×1
razor ×1
sas ×1
url ×1