我想删除点(。),但我不知道如何编写此模式。
我有一些文字。
E-1-2-3.1-0-0或E-1-2-0-2.5-0或E-1-2-0-3.5-0
但在我的文中,有些数字是2.5,56.7。我不想删除这些点是小数点。
如果在行中,那么我需要删除点。 class Index extends CI_Controller {
public function index()
{
$data = array();
//$this->blade->render('index' , $data );
$this->load->view('welcome_message');
}
}
将为-5.2-
-52-
将E-1-2-3.1-0-0
E-1-2-31-0-0
E-1-2-0-2.5-0
将E-1-2-0-25-0
E-1-2-0-3.5-0
将E-1-2-0-35-0
里面可以有DOT或NOT。
有关此模式的任何帮助吗?
答案 0 :(得分:1)
如果您只需要匹配由破折号和数字破折号包围的点,请尝试正面看法:
(?<=-\d)\.(?=\d-)
演示:https://regex101.com/r/nY7fA9/1
如果你需要匹配由数字和数字 - 破折号(任何正数位数)包围的点,那么事情就更棘手了,因为lookbehinds不支持许多正则表达式中的量词。在这种情况下,您可以将前缀与普通正则表达式匹配,并立即将匹配项重置为\K
:
-\d+\K\.(?=\d+-)