[英]Regex to delete all words containing numbers from a sentence
我盡力刪除句子中包含數字的所有單詞,但仍然不成功! 我甚至嘗試了以下正則表達式:
$regex = '/(\\s+\\w{1,2}(?=\\W+))|(\\s+[a-zA-Z0-9_-]+\\d+)/';
$x=preg_replace($regex,"",$x);
我正在努力完成以下任務:
包含數字和任何特殊字符(如 - 和_)的單詞的原始文本:
This is S3F8G m7j34m h98H40D-3D39 90843-432423 LSDF3 4X4it very good 343c3.
最終文本需要如下:
This is very good.
<?php
$x="This is S3F8G m7j34m h98H40D-3D39 90843-432423 LSDF3 4X4it very good 343c3.";
$re="/ ?\b[^ ]*[0-9][^ ]*\b/i";
print preg_replace($re, "", $x) . "\n";
收益:
This is very good.
一個附帶條件:由於此正則表達式刪除前導空格而不是尾隨空格,如果第一個單詞包含adigit,則結果將有一個前置空格。 從而:
<?php
$x="9abc foo bar.";
$re="/ ?\b[^ ]*[0-9][^ ]*\b/i";
print preg_replace($re, "", $x) . "\n";
收益:
foo bar
^
這是一個(希望)奇怪的免費方式( ideone ):
$str = '-12x This is S3F8G m7j34m h98H40D-3D39 90843-432423 LSDF3 4X4it very good 343c3. foo bar';
echo preg_replace('/\s+[\w-]*\d[\w-]*|[\w-]*\d[\w-]*\s*/', '', $str);
輸出:
This is very good. foo bar
您希望作為單詞的一部分包含的任何特殊字符,您需要將其添加到字符類中。
好吧,我在Javascript中寫道:
var str = 'This is S3F8G m7j34m h98H40D-3D39 90843-432423 LSDF3 4X4it very good 343c3.';
var result = str.match(/(^[\D]+\s|\s[\D]+\s|\s[\D]+$|^[\D]+$)+/g).join('');
但你可以在PHP中嘗試這個:
<?
$str = 'This is S3F8G m7j34m h98H40D-3D39 90843-432423 LSDF3 4X4it very good 343c3.';;
preg_match_all("/(^[\D]+\s|\s[\D]+\s|\s[\D]+$|^[\D]+$)+/",$str,$result);
$result = implode('',$result[0]);
echo $result;
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.