Я пропустил здесь самое простое решение:
str.replaceFirst(".*'(.*)\".*", "$1");
Это решение, безусловно, самое короткое, однако оно имеет некоторые недостатки:
Я бы не используйте его, за исключением быстрого взлома, или если я действительно буду уверен в том, что формат ввода.
Он работает, только если H окружен [H]
blockquote>Как я отмечал до ,
conc/3
действительно является стандартным предикатом append / 3 , который берет два списка и создает третий список.
append/3
говорит:append (? List1,? List2,? List1AndList2)
blockquote>
List1AndList2 - это объединение List1 и List2Один термин не является списком, например
1
не является списком, но[1]
является списком.
Список начинается с[
и заканчивается]
.Это пустой список:
[]
Список может иметь один элемент:
[a]
или более одного элемента:
[a,b]
и так далее. Обратите внимание, что они всегда имеют квадратные скобки.Когда вы используете
conc/3
илиappend/3
, все три значения должны быть списком, поэтому даже если вы хотите объединить или добавить один элемент, вы должны сначала преобразовать его в список, заключив его в[]
для превратить это в список. Таким образом, отдельный элемент1
преобразуется в список как[1]
.