2014-09-03 3 views
0

Я застрял на, возможно, очень простом шаге.Как совместить только первое появление пробела в строке

У меня есть строка со следующим текстом [[StandardsEnterprise GXS Enterprise]] и хочу заменить первое место по трубе («|») Не могу найти регулярное выражение для выбора только пространства.

Возможно, проблема связана с кодом Java. Я использую Java в SAG WebMethods со следующими:

IDataCursor pipelineCursor = pipeline.getCursor(); 
    String regex = IDataUtil.getString(pipelineCursor, "regex"); 
    String input = IDataUtil.getString(pipelineCursor, "input"); 
    String replacement = IDataUtil.getString(pipelineCursor, "replacement"); 
    pipelineCursor.destroy(); 

    Pattern pattern = Pattern.compile(regex); 
    Matcher matcher = pattern.matcher(input); 
    String output = matcher.replaceAll(replacement); 

    .... 

Не существует проблема с .replaceAll метода? Не применяет регулярное выражение повторно на входной строке?

У вас есть простой совет для меня?

Большое спасибо Reddy

ответ

0

Вам нужно только заменить один раз в пространстве только трубы.

Использование регулярных выражений это очень простая вещь, как это:

\s+ 

Working demo

В зависимости от языка, который вы используете, вы можете сделать ...

PHP

textpop-up 
$re = "/\\s+/"; 
$str = "[[StandardsEnterprise GXS Enterprise]]"; 
$subst = '|'; 

$result = preg_replace($re, $subst, $str, 1); 

JAVASCRIPT

var re = /\s+/; 
var str = '[[StandardsEnterprise GXS Enterprise]]'; 
var subst = '|'; 

var result = str.replace(re, subst); 

ПИТОН

import re 
p = re.compile(ur'\s+') 
test_str = u"[[StandardsEnterprise GXS Enterprise]]" 
subst = u"|" 

result = re.sub(p, subst, test_str) 

JAVA

String result = "[[StandardsEnterprise GXS Enterprise]]".replaceFirst("\\s+", "|"); 
System.out.println(result); 
// Prints: 
// [[StandardsEnterprise|GXS Enterprise]] 
+0

Здравствуйте Феде, спасибо большое за ответ. Я использую Java-сервис. Я уточню запрос. –

+0

@ReddySK Я добавил код Java для ваших нужд –

+0

Большое спасибо! Этот способ отлично работает –

Смежные вопросы